package gdr.player;

import gdr.battle.core.condizioni.CondizionePerdita;
import gdr.battle.core.condizioni.CondizioneVincita;
import java.awt.*;
import java.util.*;
/**
 * Raccoglie un insieme di personaggi in una stessa squadra.
 * @author Giorgio Vitale
 *
 */
@SuppressWarnings("serial")
public class Team implements java.io.Serializable{
	
	protected String name;
	protected ArrayList<DefaultPlayer> players;
	
	protected ArrayList<Team> ally;
	protected ArrayList<Team> enemy;
	
	/** Condizione vittoria*/
	protected CondizioneVincita condizioneVincita;
	/** Condizione sconfitta*/
	protected CondizionePerdita condizionePerdita;
	/** Colore da usare per i membri di questo team*/
	protected Color coloreTeam;
	
	public Team() {
		players = new ArrayList<DefaultPlayer>();
		ally = new ArrayList<Team>();
		enemy = new ArrayList<Team>();
	}
	
	public boolean equals(Object o)
	{	if (!(o instanceof Team)) return false;
		Team t = (Team)o;
		return name.equals(t.name);
	}
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public ArrayList<DefaultPlayer> getPlayers() {
		return players;
	}

	public void setPlayers(ArrayList<DefaultPlayer> players) {
		this.players = players;
	}
	public ArrayList<Team> getAlly() {
		return ally;
	}
	public void setAlly(ArrayList<Team> ally) {
		this.ally = ally;
	}
	public ArrayList<Team> getEnemy() {
		return enemy;
	}
	public void setEnemy(ArrayList<Team> enemy) {
		this.enemy = enemy;
	}
	public CondizioneVincita getCondizioneVincita() {
		return condizioneVincita;
	}
	public void setCondizioneVincita(CondizioneVincita condizioneVincita) {
		this.condizioneVincita = condizioneVincita;
	}
	public CondizionePerdita getCondizionePerdita() {
		return condizionePerdita;
	}
	public void setCondizionePerdita(CondizionePerdita condizionePerdita) {
		this.condizionePerdita = condizionePerdita;
	}
	public Color getColoreTeam() {
		return coloreTeam;
	}
	public void setColoreTeam(Color coloreTeam) {
		this.coloreTeam = coloreTeam;
	}

	@Override
	public String toString() {
		return "Team [name=" + name + ", players=" + players.size() + "]";
	}
	
	
}
